package io;

import java.io.File;
import java.util.Scanner;

public class IODemo11 {
    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        // 让用户输入一个指定搜索的目录
        System.out.println("请输入要搜索的路径: ");
        String basePath = scanner.next();

        File root = new File(basePath);
        if (!root.isDirectory()) {
            // 不是目录
            System.out.println("输入目录有误");
            return;
        }

        System.out.println("请输入要删除的文件名: ");
        String nameToDel = scanner.next();

        // 针对指定路径进行扫描
        // 递归操作  从 root 出发
        // 判定当前目录是否包含要删除的文件, 包含就删除, 否则就跳过
        // 再针对子目录递归

        scanDir(root, nameToDel);
    }

    private static void scanDir(File root, String nameToDel) {
        System.out.println("[scanDir]" + root.getAbsolutePath());
        // 1. 列出当前路径下包含的内容
        File[] files = root.listFiles();
        if (files == null) {
            // 当前 root 目录是个空目录
            return;
        }
        // 2. 遍历当前列出结果
        for (File f : files) {
            if (f.isDirectory()) {
                // 是目录, 继续递归
                scanDir(f, nameToDel);
            } else {
                // 是文件, 判定是否删除
                if (f.getName().contains(nameToDel)) {
                    System.out.println("确认是否要删除 " + f.getAbsolutePath() + "吗?");
                    String choice = scanner.next();
                    if (choice.equals("y") || choice.equals("Y")) {
                        f.delete();
                        System.out.println("删除成功");
                    } else {
                        System.out.println("删除取消");
                    }
                }
            }
        }
    }
}
